As shown in FIG. 1, prior art control of numerically controlled machine tools is accomplished with a memory device 1, such as a magnetic disk drive, containing a path specification composed of straight line segments and arc segments specified by their end points, which path specification is read by a computer 2 and transferred to a controller 3 which is coupled to the machine tool drives 8. A common form of machine tool drive is shown as part of FIG. 3 by a servo 56 driving a motor 63.
The controllers for numerically controlled machine tools are specialty computers sold in relatively low volume at a high price which, in real time, translate the path specification into incremental commands for the machine tool drives. The inner workings are proprietary to the makers and it is very difficult for the buyer to accomplish anything with the controller other than the methods offered by the manufacturer. In particular it is difficult to precisely control the traverse velocity, acceleration, and jerk at every portion of a complex curve.
As CAD and computer representation of parts has become common, a group of suppliers has arisen that supplies software which reads the CAD file and writes a part program for use in the machine tool controller (CAD/CAM software). These systems are better than hand programming, but still can not provide full control of the machine tool because of the machine tool controller limits. A number of jet cutting machines have been built using these technologies.
Another group of suppliers has arisen that provides plug in cards for a personal computer (PC) that contain auxiliary microprocessor chips that do the calculations normally performed in a machine tool controller. The PC provides to the auxiliary microprocessor a data stream analogous to the machine tool program, but does not directly control the motion which is accomplished by the auxiliary microprocessor. These cards provide a more cost effective system than a machine tool controller but still suffer from limited ability to control velocity along a complex path. The systems are simply a machine tool controller packaged within a PC. In general they use CAD/CAM software as described above.
The functions performed by prior art controllers for numerically controlled machine tools are illustrated within the controller block 3 of FIG. 1 and described by the following references: U.S. Pat. No. Re. 30,132 (Irie); U.S. Pat. No. 4,214,192 (Bromer); U.S. Pat. No. 4,456,863 (Matusek); U.S. Pat. No. 4,600,985 (Nozawa); T. Bullock, "Motion Control and Industrial Controllers", Motion Control, September/October, 1990; T. Bullock, "Linear and Circular Interpolation", Motion Control, April 1992; C. Wilson, "How Close Do You Have to Specify Points in a Contouring Application?", Motion Control, May 1993.
The Irie reference describes how the path to be followed by the point of a tool may be described as line segments specified by beginning and ending points. These beginning and ending points are input to a controller which interpolates all of the intermediate points on a real time basis and instructs the drive motors such that the point of the tool is commanded to pass through each of the intermediate points.
The Wilson reference describes how the controllers have become much more sophisticated since Irie. As described by Wilson, it is desirable to achieve more carefully tailored control of the motion of the tool than is possible by a single circuit controller. Ideally, motion control is calculated to adjust desired velocity and acceleration in between each individual point to which the machine tool can be commanded. This is typically on the order of 2,000 points per inch. When the machine tool is travelling at many inches per second, there is very little time to make the appropriate calculations to adjust the velocity and acceleration commands as desired between each point. Consequently, Wilson describes how modern controllers contain two circuits. The first circuit 4 receives the commands from the computer as they have been previously stored, typically in the form of straight line segments and arc segments, and computes the beginning point and ending point of each segment, with interpolation of a moderate number of points in between. This first circuit is referred to in FIG. 1 as a trajectory interpolator 4. The data from this first circuit is then provided to a second circuit referred to in FIG. 1 as an update interpolator 5. Within the time allowed by each update cycle of the servomotors or stepper motors of the machine tool drives, the update interpolator 5 interpolates additional in between points to which the machine tool should be commanded and adjusts the velocity and acceleration of the machine tool to optimize performance of the tool.
Wilson describes how the update interpolator can accept desired velocity commands which were recorded in the memory device and passed on by the computer and adjust the commands to the machine tool drives to command a constant velocity within each line segment as shown in FIG. 6(A). Wilson further describes how an improved interpolator will consider acceleration limitations of the machine tool and acceleration preferences for producing desired results to adjust the commands to the drives to operate at preferred accelerations in between specified points as shown in FIG. 6(C). This avoids undesired acceleration effects due to sudden velocity changes. Wilson then further describes how sudden changes in acceleration can produce undesired jerk of the machine tool. To avoid the jerk, the most sophisticated update interpolators can further adjust the commands to the machine tool drives so that there are no sudden changes in acceleration and the graph of velocity against position of the tool is comprised only of smooth curves as shown in FIG. 6(D).
In addition to the trajectory interpolator and the update interpolator, the other references describe further improvements to the design of real time controllers. As described by Matusek, there is normally a lag between the commanded position of the tool and the actual position achieved by the tool. This lag can be empirically measured and a table of calibration adjustments can be developed. When the calibration adjustments are added to the desired position commands by a servo response calibration circuit 6, the resulting commands to the drive make up for the lag.
Another solution of the problem of lag, known as feed forward is further described in the 1990 article by T. Bullock. In addition to interpreting position commands to compute desired changes in position with a position command interpreter circuit 54 as shown in FIG. 3, a controller with feed forward computes the desired velocity with a position command differentiator circuit 53, and sends the appropriate voltage to achieve the commanded velocity to the servo input 57.
Another improvement to the circuits of prior art controllers is described in the Nozawa reference. Because of the previously described lag between the commanded position and the actual position, when a machine tool is commanded to execute a sharp corner, it will round the corner. Nozawa describes a solution to the problem of rounding whereby the commands to begin moving in the direction following the corner are delayed while the commands to continue movement in the direction preceding the corner are continued until the machine tool approaches an acceptable tolerance for rounding. Nozawa refers to these circuits as acceleration/deceleration circuits 7.
With the addition of the above-described circuits, which operate in real time to make appropriate adjustments to the commands passed through to the drive motors, sophisticated controllers have become quite complex. Furthermore, the information which must be supplied to the controllers in order to generate the desired motion, including limitation of errors and preferred velocity control, have also become complex. However, because the controllers must perform complex calculations to generate the interpolated points within each specified line segment and other functions, if the line segments supplied to the controller are too short, or if too much additional data is supplied to the controller, the controller cannot keep up with the required calculations, limiting the benefits that can be realized from the present complexity.
Also, the most sophisticated controllers do not consider predictions of resisting forces that the motors will experience.